# frozen_string_literal: true

class QueueBackfillProjectNamespaceDetails < Gitlab::Database::Migration[2.3]
  milestone '18.7'

  restrict_gitlab_migration gitlab_schema: :gitlab_main

  MIGRATION = "BackfillProjectNamespaceDetails"
  INTERVAL = 2.minutes
  BATCH_SIZE = 1_000
  MAX_BATCH_SIZE = 10_000
  SUB_BATCH_SIZE = 200

  def up
    # Clear previous execution from the migration deleted from https://gitlab.com/gitlab-org/gitlab/-/merge_requests/137701
    # This would have to be re-queued to ensure we can properly finalize it.
    delete_batched_background_migration(MIGRATION, :projects, :id, [])

    queue_batched_background_migration(
      MIGRATION,
      :projects,
      :id,
      job_interval: INTERVAL,
      batch_size: BATCH_SIZE,
      max_batch_size: MAX_BATCH_SIZE,
      sub_batch_size: SUB_BATCH_SIZE
    )
  end

  def down
    delete_batched_background_migration(MIGRATION, :projects, :id, [])
  end
end
